Branch prediction is used to enhance performance in wide, super-scalar processors. Conventional branch predictors use both local and global branch history components. The local predictor makes a direction prediction for a branch instruction (using an instruction pointer (IP) of the instruction) based only on the IPs behavior in the recent past. The global predictor, on the other hand, makes a direction prediction for the branch instruction based on the behavior of all the recently executed branch instructions in the program. However, these different predictors contend for resources.